<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script src="../js/vue.js" type="text/javascript" charset="utf-8"></script>
	</head>
	<body>
		<div id="root">
			<input type="text" v-model="keyWord">
			<ul>
				<li v-for="(p,index) in filPersons" :key="index">
					{{p.id}}-{{p.name}}-{{p.age}}-{{p.sex}}
				</li>
			</ul>

		</div>
		<script type="text/javascript">
			// 用watch实现
			/* const vm = new Vue({
				el: '#root',
				data: {
					keyWord: '',
					persons: [{
							id: '001',
							name: '马冬梅',
							age: 18,
							sex: '女'
						},
						{
							id: '002',
							name: '周冬雨',
							age: 19,
							sex: '女'
						},
						{
							id: '003',
							name: '周杰伦',
							age: 20,
							sex: '男'
						},
						{
							id: '004',
							name: '温兆伦',
							age: 21,
							sex: '男'
						}
					],
					filPersons:[]
				},
				watch: {
					keyWord: {
						immediate:true,
						handler(newValue) {
							this.filPersons = this.persons.filter((p) => {
								return p.name.indexOf(newValue) !== -1
							})
						}
					}
				}
			}) */

			// 用computed实现
			const vm = new Vue({
				el: '#root',
				data: {
					keyWord: '',
					persons: [{
							id: '001',
							name: '马冬梅',
							age: 18,
							sex: '女'
						},
						{
							id: '002',
							name: '周冬雨',
							age: 19,
							sex: '女'
						},
						{
							id: '003',
							name: '周杰伦',
							age: 20,
							sex: '男'
						},
						{
							id: '004',
							name: '温兆伦',
							age: 21,
							sex: '男'
						}
					]
				},
				computed:{
					filPersons(){
						return this.persons.filter((p)=>{
							return p.name.indexOf(this.keyWord)!==-1
						})
					}
				}
			})
		</script>
	</body>
</html>
